#!/bin/bash

echo "=========================================="
echo "  测试SMTP邮件发送"
echo "=========================================="
echo ""

echo "📧 请输入接收测试邮件的邮箱地址："
read -p "收件人: " RECIPIENT_EMAIL

if [ -z "$RECIPIENT_EMAIL" ]; then
    echo "❌ 收件人邮箱不能为空！"
    exit 1
fi

echo ""
echo "📤 正在发送测试邮件到 $RECIPIENT_EMAIL ..."
echo ""

cd /aiops/backend
python manage.py shell << PYTHON_EOF
from django.core.mail import send_mail
from django.conf import settings

print(f"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
print(f"📋 当前配置：")
print(f"   发件邮箱: {settings.EMAIL_HOST_USER}")
print(f"   SMTP服务器: {settings.EMAIL_HOST}:{settings.EMAIL_PORT}")
print(f"   使用SSL: {settings.EMAIL_USE_SSL}")
print(f"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
print("")

try:
    send_mail(
        subject='🎉 CMDB系统 - 测试邮件',
        message='''您好！

这是一封来自CMDB主机巡检系统的测试邮件。

如果您收到此邮件，说明SMTP配置成功！✅

现在您可以使用主机巡检的邮件发送功能了。

━━━━━━━━━━━━━━━━━━━━━━
CMDB主机巡检系统
''',
        from_email=settings.DEFAULT_FROM_EMAIL,
        recipient_list=['$RECIPIENT_EMAIL'],
        fail_silently=False,
    )
    print("")
    print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
    print("✅ 邮件发送成功！")
    print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
    print("")
    print("请检查邮箱: $RECIPIENT_EMAIL")
    print("（可能在垃圾邮件文件夹中）")
    print("")
    print("如果收到邮件，说明配置正确！")
    print("现在可以重启后端使用巡检邮件功能了。")
    print("")
except Exception as e:
    print("")
    print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
    print(f"❌ 邮件发送失败")
    print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
    print(f"错误信息: {e}")
    print("")
    print("🔍 常见问题排查：")
    print("")
    print("1. 认证失败 (535 authentication failed)")
    print("   → 使用的是SMTP授权码吗？不是登录密码！")
    print("   → 授权码是否正确？建议重新获取")
    print("   → 邮箱地址是否正确？")
    print("")
    print("2. 连接失败")
    print("   → 检查网络连接")
    print("   → 检查防火墙是否允许465端口")
    print("")
    print("3. 其他错误")
    print("   → 查看完整错误信息")
    print("   → 确认163邮箱SMTP服务已开启")
    print("")
    print("💡 解决方案：")
    print("   1. 重新运行: ./configure_smtp.sh")
    print("   2. 确保使用SMTP授权码")
    print("   3. 再次测试: ./test_email.sh")
    print("")
PYTHON_EOF

echo ""
echo "=========================================="
